home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Applications 1996 May / SGI IRIX 6.2 Applications 1996 May.iso / dist / impr_dev.idb / usr / impressario / src / scan / template_driver / scan.h.z / scan.h
C/C++ Source or Header  |  1996-05-06  |  3KB  |  97 lines

  1. /*
  2.  * scan.h
  3.  * 
  4.  *    Interface between main.c and scan.c modules of an Impressario
  5.  *    scanner driver. 
  6.  * 
  7.  * Copyright 1992, 1993, 1994 Silicon Graphics, Inc.
  8.  * All Rights Reserved.
  9.  *
  10.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  11.  * the contents of this file may not be disclosed to third parties, copied or
  12.  * duplicated in any form, in whole or in part, without the prior written
  13.  * permission of Silicon Graphics, Inc.
  14.  *
  15.  * RESTRICTED RIGHTS LEGEND:
  16.  * Use, duplication or disclosure by the Government is subject to restrictions
  17.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  18.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  19.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  20.  * rights reserved under the Copyright Laws of the United States.
  21.  */
  22.  
  23. #ifndef MIN
  24. #define MIN(a,b) ((a) < (b) ? (a) : (b))
  25. #endif
  26.  
  27. #ifndef MAX
  28. #define MAX(a,b) ((a) > (b) ? (a) : (b))
  29. #endif
  30.  
  31. #define ilimit(val,floor,roof) MIN(roof, MAX(floor, val))
  32.  
  33. typedef struct tag_scaninfo {
  34.     int metric;                                /* metric for res, page size */
  35.  
  36.     float pagex, pagey, pagewidth, pageheight; /* page size */
  37.  
  38.     float minxres, maxxres, minyres, maxyres;  /* resolution bounds */
  39.     float *xres, *yres;                        /* resolution arrays */
  40.     int nres;                                  /* size of arrays */
  41.  
  42.     int canZoom;                               /* 1 if scanner can */
  43.                            /* zoom */
  44.     SCDATATYPE *types;                         /* supported types */
  45.     int ntypes;                                /* number of types */
  46.  
  47.     SCANFUNC *options;                         /* scanner specific */
  48.                            /* options */
  49.     int noptions;                              /* number of options */
  50.  
  51.     void *priv;                                /* private member */
  52.     SCFEEDERFLAGS feederFlags;                 /* feeder flags */
  53. } SCANINFO;
  54.  
  55. typedef struct tag_scanparams {
  56.     float xres, yres;        /* resolution */
  57.  
  58.     float x, y, width, height;    /* scan area */
  59.     SCDATATYPE type;        /* scan data type */
  60.  
  61.     int preview;        /* 1 if this is a preview, 0 othersise */
  62.  
  63.     SCQUEUE *scanq, *sfreeq;    /* buffer queues */
  64.  
  65.     int xpixels, ylines, xbytes; /* Actual size of scan data */
  66.  
  67.     /*
  68.      * Function to convert a row of data from scanner specific format
  69.      * to format recognized by Impressario scanning architecture.
  70.      */
  71.     void (*convert)(void *from, int fromx, void *to, int tox, int *zmap);
  72.  
  73.     int maxmem;                 /* maximum amount of memory to allocate */
  74.     int readlines;        /* Number of lines to scan at a time */
  75.     SCANINFO *s;        /* scaninfo returned from OpenScanner */
  76. } SCANPARAMS;
  77.  
  78. SCANINFO * OpenScanner(char *dev);
  79. int SetupScan(SCANPARAMS *params);
  80. int ScanReset(SCANINFO *scan);
  81. void DoScan(SCANPARAMS *params);
  82. int SetFeederFlags(SCANINFO *scan, SCFEEDERFLAGS flags);
  83. int AdvanceFeeder(SCANINFO *scan);
  84. int FeederReady(SCANINFO *scan);
  85.  
  86. void PrintID(FILE *fp);
  87. void FindScanners(FILE *fp);
  88.  
  89. int InstallScanner(char *dev);
  90. int DeleteScanner(char *dev);
  91.  
  92. void *GetSaveOptions(SCANINFO *scan, int *nBytes);
  93. int SetSaveOptions(SCANINFO *scan, void *options, int nBytes);
  94.  
  95.  
  96.  
  97.